// CodeGear C++Builder
// Copyright (c) 1995, 2015 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'libpostproc.pas' rev: 30.00 (Windows)

#ifndef LibpostprocHPP
#define LibpostprocHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#pragma pack(push,8)
#include <System.hpp>
#include <SysInit.hpp>
#include <ffmpeg_types.hpp>

//-- user supplied -----------------------------------------------------------

namespace Libpostproc
{
//-- forward type declarations -----------------------------------------------
struct DECLSPEC_DRECORD pp_context
{
};


struct DECLSPEC_DRECORD pp_mode
{
};


//-- type declarations -------------------------------------------------------
typedef pp_context *ppp_context;

typedef pp_mode *ppp_mode;

typedef System::StaticArray<System::PByte, 3> Tpp_src_puint8_t;

typedef Tpp_src_puint8_t Tpp_dst_puint8_t;

typedef System::StaticArray<int, 3> Tpp_srcStride_int;

typedef Tpp_srcStride_int Tpp_dstStride_int;

//-- var, const, procedure ---------------------------------------------------
static const System::Int8 LIBAVUTIL_VERSION_MAJOR = System::Int8(0x38);
#define LIBAVUTIL_VERSION_MAJOR_STR L"56"
static const System::Int8 LIBAVUTIL_VERSION_MINOR = System::Int8(0x1f);
static const System::Int8 LIBAVUTIL_VERSION_MICRO = System::Int8(0x64);
#define FFMPEG_VERSION L"4.2.2"
static const int LIBAVUTIL_VERSION_INT = int(0x381f64);
static const System::Int8 LIBSWSCALE_VERSION_MAJOR = System::Int8(0x5);
static const System::WideChar LIBSWSCALE_VERSION_MAJOR_STR = (System::WideChar)(0x35);
static const System::Int8 LIBSWSCALE_VERSION_MINOR = System::Int8(0x5);
static const System::Int8 LIBSWSCALE_VERSION_MICRO = System::Int8(0x64);
static const System::Int8 LIBAVCODEC_VERSION_MAJOR = System::Int8(0x3a);
#define LIBAVCODEC_VERSION_MAJOR_STR L"58"
static const System::Int8 LIBAVCODEC_VERSION_MINOR = System::Int8(0x36);
static const System::Int8 LIBAVCODEC_VERSION_MICRO = System::Int8(0x64);
static const System::Int8 LIBAVDEVICE_VERSION_MAJOR = System::Int8(0x3a);
#define LIBAVDEVICE_VERSION_MAJOR_STR L"58"
static const System::Int8 LIBAVDEVICE_VERSION_MINOR = System::Int8(0x8);
static const System::Int8 LIBAVDEVICE_VERSION_MICRO = System::Int8(0x64);
static const System::Int8 LIBAVFORMAT_VERSION_MAJOR = System::Int8(0x3a);
#define LIBAVFORMAT_VERSION_MAJOR_STR L"58"
static const System::Int8 LIBAVFORMAT_VERSION_MINOR = System::Int8(0x1d);
static const System::Int8 LIBAVFORMAT_VERSION_MICRO = System::Int8(0x64);
static const System::Int8 FF_API_R_FRAME_RATE = System::Int8(0x1);
static const System::Int8 LIBPOSTPROC_VERSION_MAJOR = System::Int8(0x37);
#define LIBPOSTPROC_VERSION_MAJOR_STR L"55"
static const System::Int8 LIBPOSTPROC_VERSION_MINOR = System::Int8(0x5);
static const System::Int8 LIBPOSTPROC_VERSION_MICRO = System::Int8(0x64);
static const System::Int8 LIBSWRESAMPLE_VERSION_MAJOR = System::Int8(0x3);
static const System::WideChar LIBSWRESAMPLE_VERSION_MAJOR_STR = (System::WideChar)(0x33);
static const System::Int8 LIBSWRESAMPLE_VERSION_MINOR = System::Int8(0x5);
static const System::Int8 LIBSWRESAMPLE_VERSION_MICRO = System::Int8(0x64);
static const System::Int8 LIBAVFILTER_VERSION_MAJOR = System::Int8(0x7);
static const System::WideChar LIBAVFILTER_VERSION_MAJOR_STR = (System::WideChar)(0x37);
static const System::Int8 LIBAVFILTER_VERSION_MINOR = System::Int8(0x39);
static const System::Int8 LIBAVFILTER_VERSION_MICRO = System::Int8(0x64);
#define swscale_dll L"swscale-5.dll"
#define avutil_dll L"avutil-56.dll"
#define avcodec_dll L"avcodec-58.dll"
#define avdevice_dll L"avdevice-58.dll"
#define avformat_dll L"avformat-58.dll"
#define postproc_dll L"postproc-55.dll"
#define swresample_dll L"swresample-3.dll"
#define avfilter_dll L"avfilter-7.dll"
extern "C" unsigned __cdecl postproc_version(void);
extern "C" char * __cdecl postproc_configuration(void);
extern "C" char * __cdecl postproc_license(void);
static const System::Int8 PP_QUALITY_MAX = System::Int8(0x6);
extern "C" void __cdecl pp_postprocess(const Tpp_src_puint8_t &src, const Tpp_srcStride_int &srcStride, const Tpp_src_puint8_t &dst, const Tpp_srcStride_int &dstStride, int horizontalSize, int verticalSize, const Ffmpeg_types::pint8_t QP_store, int QP_stride, ppp_mode mode, ppp_context ppContext, int pict_type);
extern "C" ppp_mode __cdecl pp_get_mode_by_name_and_quality(const char * name, int quality);
extern "C" void __cdecl pp_free_mode(ppp_mode mode);
extern "C" ppp_context __cdecl pp_get_context(int width, int height, int flags);
extern "C" void __cdecl pp_free_context(ppp_context ppContext);
static const unsigned PP_CPU_CAPS_MMX = unsigned(0x80000000);
static const int PP_CPU_CAPS_MMX2 = int(0x20000000);
static const int PP_CPU_CAPS_3DNOW = int(0x40000000);
static const int PP_CPU_CAPS_ALTIVEC = int(0x10000000);
static const int PP_CPU_CAPS_AUTO = int(0x80000);
static const System::Int8 PP_FORMAT = System::Int8(0x8);
static const System::Int8 PP_FORMAT_420 = System::Int8(0x19);
static const System::Int8 PP_FORMAT_422 = System::Int8(0x9);
static const System::Int8 PP_FORMAT_411 = System::Int8(0xa);
static const System::Int8 PP_FORMAT_444 = System::Int8(0x8);
static const System::Int8 PP_FORMAT_440 = System::Int8(0x18);
static const System::Int8 PP_PICT_TYPE_QP2 = System::Int8(0x10);
}	/* namespace Libpostproc */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_LIBPOSTPROC)
using namespace Libpostproc;
#endif
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// LibpostprocHPP
